﻿//namespace EasyWeb.Web.Controllers
//{
//    using System;
//    using System.Collections.Generic;
//    using System.Dynamic;
//    using System.Linq;
//    using System.Transactions;
//    using System.Web;
//    using System.Web.Mvc;
//    using EasyWeb.Data;

//    [EWHandleError]
//    public class EWEntityController : Controller
//    {
//        public ActionResult Index(int page = 1, string sort = "InternalName", string sortDir = "asc")
//        {
//            var models = new List<ExpandoObject>();

//            var condition = EWHelpers.Data.CreateCondition<EWEntityDefinition>(page, 20, sort, sortDir);
//            using (var ts = EWHelpers.Data.BeginTransaction())
//            {
//                var result = EWHelpers.Data.DaoFactory.EntityDefinitionDao.Select(condition);
//                ts.Complete();

//                foreach (var item in result.Results)
//                {
//                    dynamic model = new ExpandoObject();
//                    model.Id = item.Id;
//                    model.InternalName = item.InternalName;
//                    model.DisplayName = item.DisplayName.Value;
//                    models.Add(model);
//                }

//                this.ViewBag.TotalRowCount = result.TotalRowCount;
//            }

//            return View(EWHelpers.Web.View.GetFullViewName(), models);
//        }

//        public ActionResult Create()
//        {
//            return View(EWHelpers.Web.View.GetFullViewName());
//        }

//        [HttpPost]
//        public ActionResult Create([Bind(Prefix = EWHelpers.Web.HtmlFieldPrefix)] EWEntityDefinition model)
//        {
//            if (ModelState.IsValid)
//            {
//                using (var ts = EWHelpers.Data.BeginTransaction())
//                {
//                    EWHelpers.Data.DaoFactory.EntityDefinitionDao.Create(model);
//                    ts.Complete();
//                }

//                this.ViewBag.Url = this.Url.RouteUrl("EasyWeb_Entity", new { action = "Details", id = model.Id });
//            }

//            return View(EWHelpers.Web.View.GetFullViewName(), model);
//        }

//        public ActionResult Details(Guid id)
//        {
//            EWEntityDefinition model = null;

//            using (var ts = EWHelpers.Data.BeginTransaction())
//            {
//                model = EWHelpers.Data.DaoFactory.EntityDefinitionDao.Select(id);
//                ts.Complete();
//            }

//            return View(EWHelpers.Web.View.GetFullViewName(), model);
//        }

//        [HttpPost]
//        public ActionResult Edit([Bind(Prefix = EWHelpers.Web.HtmlFieldPrefix)] EWEntityDefinition model)
//        {
//            if (ModelState.IsValid)
//            {
//                using (var ts = EWHelpers.Data.BeginTransaction())
//                {
//                    EWHelpers.Data.DaoFactory.EntityDefinitionDao.Update(model);
//                    ts.Complete();
//                }

//                return RedirectToRoute("EasyWeb_Entity", new { action = "Index" });
//            }

//            return View(EWHelpers.Web.View.GetFullViewName("Details"), model);
//        }

//        [HttpPost]
//        public ActionResult Delete([Bind(Prefix = EWHelpers.Web.HtmlFieldPrefix)] EWEntityDefinition model)
//        {
//            using (var ts = EWHelpers.Data.BeginTransaction())
//            {
//                EWHelpers.Data.DaoFactory.EntityDefinitionDao.Delete(model.Id, model.Timestamp);
//                ts.Complete();
//            }

//            return RedirectToRoute("EasyWeb_Entity", new { action = "Index" });
//        }
//    }
//}
